<?php namespace Common\Model;
use Hdphp\Model\Model;
class Category extends Model{
	//指定表名
	protected $table = 'category';
	//自动验证
	protected $validate = array(
		//array(字段名,验证方法,错误信息,验证条件,验证时间)
	//		required必须验证；maxlen:120最大长度120
		array('cname','required','分类名称不能为空',3,3),
	);
	
	//分类添加store自己定义的函数
	public function store(){
		//1.create之后$this->data才会有数据
		//2.create会触发自动验证
//		如果自动验证成功返回真 
		if($this->create()){
			//p($this->data);exit;
			//添加add方法所需要的数据就是$this->data里面的数据
			$this->add();
			return true;
		}
		return false;
	}
//	编辑修改
	public function upda(){
//		要在模板加隐藏域或者在控制器出给id
		if($this->create()){		
			$this->save();
			return true;
		}
		return false;
	}
	//获得除了自己和自己的子集的分类数据
	public function getNoMy($cid){
//		获得自己子集的id
		$cids=$this->getSon($this->get(),$cid);
//		把自己的id压入数组
		$cids[]=$cid;
//		获得除了自己和自己子集的数据
//		条件where
		$where="cid NOT IN(".implode(',', $cids).")";
		$data=$this->where($where)->get();
		return $data;
	}
	public function getSon($data,$cid){
//		建个空数组接收子集id
//		$tmp=array();
		$tmp=[];
//		循环所有数据找子集id
		foreach($data as $v){
			if($v['pid']==$cid){
				$tmp[]=$v['cid'];
//				用递归合并数组
				$tmp=array_merge($tmp,$this->getSon($data,$v['cid']));
			}		
		}	
		return $tmp;
	}
	/**
	 * 获得分类的所有的数据
	 */
	public function getAll(){
		$data = $this->get();
		return Data::tree($data,'cname');
	}
	
}






 ?>